<template>
  <view v-if="showPrivacy" class="privacy-popup">
    <view class="privacy-mask"></view>
    <view class="privacy-content">
      <view class="privacy-title">用户隐私保护指引</view>
      <scroll-view scroll-y class="privacy-text">
        <text class="privacy-desc">
          感谢您使用潮玩搭子！我们非常重视您的隐私保护和个人信息保护。
          
          为了更好地为您提供服务，我们需要获取您的以下信息：
          
          • 位置信息：用于活动地点选择、附近活动推荐等功能
          • 设备信息：用于优化应用性能和用户体验
          
          我们承诺：
          1. 严格按照相关法律法规收集、使用您的个人信息
          2. 不会将您的个人信息出售给第三方
          3. 采取必要的技术和管理措施保护您的信息安全
          
          您可以随时在设置中管理这些权限。点击"同意"即表示您已阅读并同意我们的隐私政策。
        </text>
      </scroll-view>
      <view class="privacy-actions">
        <button class="privacy-btn reject-btn" @click="handleReject">拒绝</button>
        <button class="privacy-btn agree-btn" @click="handleAgree">同意</button>
      </view>
    </view>
  </view>
</template>

<script>
export default {
  name: 'PrivacyPopup',
  data() {
    return {
      showPrivacy: false
    }
  },
  mounted() {
    this.checkPrivacyAuthorization()
  },
  methods: {
    // 检查隐私授权状态
    checkPrivacyAuthorization() {
      // 检查是否支持隐私协议API
      if (uni.getPrivacySetting) {
        uni.getPrivacySetting({
          success: (res) => {
            console.log('隐私设置:', res)
            if (res.needAuthorization) {
              this.showPrivacy = true
            }
          },
          fail: (err) => {
            console.error('获取隐私设置失败:', err)
          }
        })
      }
    },
    
    // 用户同意隐私协议
    handleAgree() {
      this.showPrivacy = false
      
      // 调用隐私协议同意接口
      if (uni.requirePrivacyAuthorize) {
        uni.requirePrivacyAuthorize({
          success: () => {
            console.log('用户同意隐私协议')
            this.$emit('agree')
            uni.showToast({
              title: '授权成功',
              icon: 'success'
            })
          },
          fail: (err) => {
            console.error('隐私协议授权失败:', err)
            this.$emit('reject')
            uni.showToast({
              title: '授权失败',
              icon: 'none'
            })
          }
        })
      } else {
        // 兼容旧版本
        this.$emit('agree')
      }
    },
    
    // 用户拒绝隐私协议
    handleReject() {
      this.showPrivacy = false
      this.$emit('reject')
      uni.showModal({
        title: '提示',
        content: '拒绝授权将无法使用相关功能，您可以稍后在设置中重新授权',
        showCancel: false,
        confirmText: '知道了'
      })
    },
    
    // 外部调用显示隐私弹窗
    show() {
      this.showPrivacy = true
    },
    
    // 外部调用隐藏隐私弹窗
    hide() {
      this.showPrivacy = false
    }
  }
}
</script>

<style lang="scss" scoped>
.privacy-popup {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
}

.privacy-mask {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.6);
}

.privacy-content {
  position: relative;
  width: 600rpx;
  max-height: 80vh;
  background: #fff;
  border-radius: 20rpx;
  padding: 40rpx;
  display: flex;
  flex-direction: column;
}

.privacy-title {
  font-size: 36rpx;
  font-weight: 600;
  color: #333;
  text-align: center;
  margin-bottom: 30rpx;
}

.privacy-text {
  flex: 1;
  max-height: 500rpx;
  margin-bottom: 40rpx;
  
  .privacy-desc {
    font-size: 28rpx;
    color: #666;
    line-height: 1.6;
    white-space: pre-line;
  }
}

.privacy-actions {
  display: flex;
  gap: 20rpx;
}

.privacy-btn {
  flex: 1;
  height: 80rpx;
  border-radius: 40rpx;
  font-size: 30rpx;
  font-weight: 600;
  border: none;
  
  &.reject-btn {
    background: #f5f5f5;
    color: #999;
  }
  
  &.agree-btn {
    background: #14cc60;
    color: #fff;
  }
  
  &:active {
    opacity: 0.8;
  }
}
</style> 